sync - #2
Open
nanocoh wants to merge 2544 commits into
Open
Conversation
…ROAD into grt_cugr_fix_missing_guides Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com> # Conflicts: # src/grt/src/cugr/src/GridGraph.cpp # src/grt/test/pin_access1_cugr.ok
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…eader Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
so that we can enable the layering check. Signed-off-by: Henner Zeller <h.zeller@acm.org>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
Make private headers visible to cts unittest
…rasitics odb: add support for ground-only inter-chip parasitics
grt/cugr: fix guides missing pins and connection layers
An example FP is #11017 Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
…ROAD into grt-improved-soft-ndr
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
The GRT-0183 error message is - for normal OpenROAD users - very cryptic and includes almost no information what's wrong. Update the error message and include the actual issue to the message. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Matt Liberty <matt.liberty@gmail.com>
…-AGENTS.md Tell agents not the check DCO to avoid false positives.
…odex style review on codes in future Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
grt: fastroute: Improve GRT-0183 message
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com> # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
…elper Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…acing GRT-0096 on the CUGR path Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
When GlobalRouter::mergeNetsRouting() fires for the CUGR path, attempt
to stitch the two existing route segments at the former buffer pin
position (connectCUGRRouting) rather than ripping up and rerouting the
survivor from scratch.
Key changes:
GlobalRouter::connectCUGRRouting(preserved, removed)
Mirrors connectRouting() but uses cugr_->hasAvailableResources()
instead of fastroute_->hasAvailableResources() for the capacity
check. Reuses the existing geometry helpers findBufferPinPostions,
findTopLayerOverPosition, and createConnectionForPositions which are
FastRoute-agnostic.
GlobalRouter::mergeNetsRouting() -- CUGR branch
If stitching succeeds, call cugr_->mergeNet() to transfer tree
ownership and save guides. On failure, fall back to addDirtyNet so
the survivor is rerouted incrementally (matching the previous safe
behaviour).
CUGR::mergeNet(preserved, removed)
Attaches the removed net's GRTreeNode subtree as a child of the
preserved net's routing tree so getRoutes() emits all wire segments.
Inserts the removed net into merged_nets_ so removeNet() knows not
to decrement GridGraph demand for it (the wires are still there,
now owned by the preserved net).
CUGR::removeNet() -- merged-net guard
Skips removeTreeUsage() for nets that were transferred via mergeNet,
preventing double-decrement of GridGraph congestion numbers.
CUGR::hasAvailableResources(layer, tile_x, tile_y)
Thin wrapper over GridGraph::getEdge().getResource() >= 1.0,
equivalent to FastRouteCore::hasAvailableResources.
All 143 GRT regression tests pass.
Signed-off-by: Sparsh Karna <sparsh2005karna@gmail.com>
When buf_dist evaluates to a fractional value strictly between 0.0 and 1.0 (in DBU), integer truncation causes length -= buf_dist to remain unchanged. Previously, the zero_advance detection only caught buf_dist <= 0.0. This fix broadens the condition to buf_dist < 1.0 to correctly detect lack of progress caused by integer truncation, preventing an infinite loop and subsequent stack overflow. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Fix integer truncation bug in RepairDesign::repairNetWire
web: fix bbox and add debugPrints
Register the tests from regression_tests_large.tcl (macro01-03, medium01-06, large01-02) as Bazel regression_test targets tagged 'manual' so they are excluded from the default 'bazel test //...' wildcard. Add a :large_tests test_suite to run them explicitly and update their stale golden .ok files to match current GPL log output. Run with: bazel test //src/gpl/test:large_tests Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Extend the :test_resources exclude list to cover ALL_TESTS + LARGE_TESTS (not just TESTS) so editing a large or passfail test's .tcl/.py no longer invalidates the shared filegroup and re-runs every standard test. .ok golden files are intentionally left in test_resources: they reach each test only through this filegroup (the regression_test macro sets no per-test golden_file), so excluding them would break log diffing. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…-large-tests gpl: add separate Bazel targets for long-running regression tests
This code clearly articulates the intent that fixPointers *must* be run. If an exception is thrown or we add some early exit on futile runs (discovered in futility policy experiments), we're not suckerpunched by unfixed pointers. To prevent this, we inject a std::shared_ptr RAII guard (scope_exit at home) scoped around findResizeSlacks to guarantee nbc_->fixPointers() executes unconditionally upon exiting the scope. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Address review feedback from Matt to use boost scoped_exit instead of std::shared_ptr. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Added boost.scope_exit bazel dependency. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
…in-height odb/tap: cut row segments in narrow regions
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
FastRouteCore::getCongestionNets iterated over every overflow position and for each position, checked intersection with every net in the design. This created an O(P * N) bottleneck that caused the router to hang for hours on congested designs where P and N are both large. Replace the pointer-chasing intersection checks with a boolean grid map. First, project all overflow positions onto 2D boolean arrays. Then, iterate over the nets once to check if any segments overlap with a congested grid cell. This reduces the complexity to O(P + N), eliminating the bottleneck. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Build the router state synthetically through the public API (addNet, addTreeEdge, updateEdge2DAnd3DUsage) on a 10x10 grid and pin the behavior of getCongestionNets: nets crossing overflowed gcells are selected, horizontal overflow only matches horizontal segments (and vice versa), clock nets are excluded, the search radius expands only until new nets are found, capped at 4, and nets already in the set do not stop the expansion. The same suite passes against the previous O(positions * nets) implementation, certifying the boolean-grid rewrite is behavior preserving without needing the large proprietary design that exposed the bottleneck. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
findNetsNearPosition lost its last caller when getCongestionNets switched to the boolean grid lookup. Also return early when there are no overflow positions (the net scan would otherwise walk every route against empty grids five times) and const-qualify locals. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Initialize already_added by looking up the nets already in the set in db_net_id_map_ instead of scanning every net in the design, and use size_t arithmetic for all flattened grid-map indexing so the products cannot overflow int on very large grids. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
gpl: ensure global placement pointers are fixed even on exception
Replace the magic number 5 with kMaxSearchRadius and compare grids.size() <= routeLen instead of < routeLen + 1 so the guard cannot overflow when routeLen is INT_MAX. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> # Conflicts: # MODULE.bazel.lock
docs: add bazel sphinx_build_test replicating ReadTheDocs CI (salvage #10695)
… pass Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
…track-a Cross-chiplet 3DIC static timing analysis
grt: use boolean grid map for fast congestion nets lookup
dpl: fix data race
rcx: create struct for the spef header to avoid duplicated code on 3D pass
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
[Describe your changes here]
Type of Change
Impact
[How does this change the tool's behavior?]
Verification
./etc/Build.sh).Related Issues
[Link issues here]